#include<t_stdio.h>
#include<t_file.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
//进程间通信

int main(){
    char buf[128];
    char * msg="this is a test..\n";
        int fd[2];
    //创建管道
    int pp =pipe(fd);
    if(pp==-1)E_MSG("pipe",-1); 

    //创建子进程
    pid_t pid = fork();
    if(pid==-1)E_MSG("fork",-1);
    

    if(pid==0){//子进程
        close(fd[1]);//关闭写端
        //读取数据，如果管道没有数据，就阻塞等待
        int r = read(fd[0],buf,128);
        write(1,buf,r);//将buf输出到屏幕
        //关闭读端
        close(fd[0]);
        exit(0);
    }

    else {//父进程
    close(fd[0]);

    write(fd[1],msg,strlen(msg));

    close(fd[1]);
    wait(NULL);//阻塞等待子进程结束
    
    }

    return 0;
}